/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package erp.financeiro.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import erp.financeiro.DadosBancarios;
import erp.financeiro.TipoPessoa;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author Robert
 */
public class DadosBancariosDAO {


    public static DadosBancarios cadastrar(TipoPessoa tipo, String nome, String descricao, String banco, String agencia, String conta, String cpf_cnpj) throws Exception {

        DadosBancarios dados = new DadosBancarios();
        
        dados.setTipo(tipo);
        if (tipo == TipoPessoa.PESSOA_FISICA) {
            dados.setCpf(cpf_cnpj);
        } else {
            dados.setCnpj(cpf_cnpj);
        }
        dados.setNome(nome);
        dados.setBanco(banco);
        dados.setAgencia(agencia);
        dados.setDescricao(descricao);
        dados.setConta(conta);

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();
        
        em.getTransaction().begin();
        em.persist(dados);
        em.getTransaction().commit();

        return dados;
    }

    public static List<DadosBancarios> getDadosBancarios(TipoPessoa tipo) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();
        
        Query query = em.createQuery("SELECT x FROM "+ DadosBancarios.class.getSimpleName() + " x where x.tipo=:tipo");
        query.setParameter("tipo", tipo);
        List<DadosBancarios> list = (List<DadosBancarios>) query.getResultList();

        return list;
    }

    public static DadosBancarios getDadosBancariosById(Long id) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();

        return (DadosBancarios) em.find(DadosBancarios.class, id);
    }

    public static Boolean excluir(Long id){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();

        DadosBancarios dados = (DadosBancarios) em.find(DadosBancarios.class, id);

        try{
            em.getTransaction().begin();
            em.remove(dados);
            em.getTransaction().commit();
        }catch(Exception e){
            return Boolean.FALSE;
        }
        return Boolean.TRUE;

    }
}
